namespace UniversalAdminSystem.Application.PermissionManagement.DTOs;

/// <summary>
/// 角色数据传输对象
/// </summary>
/// <param name="RoleId">角色ID</param>
/// <param name="Name">角色名称</param>
/// <param name="Description">角色描述</param>
/// <param name="IsSystem">是否为系统角色</param>
/// <param name="IsSupper">是否为超级管理员</param>
/// <param name="CreateTime">创建时间</param>
/// <param name="UpdateTime">更新时间</param>
/// <param name="PermissionCount">权限数量</param>
public record RoleDto(
    Guid RoleId,
    string Name,
    string? Description,
    bool IsSystem,
    bool IsSupper,
    DateTime CreateTime,
    DateTime UpdateTime,
    int PermissionCount = 0
);

/// <summary>
/// 角色创建数据传输对象
/// </summary>
/// <param name="Name">角色名称</param>
/// <param name="Description">角色描述</param>
/// <param name="IsSystem">是否为系统角色</param>
/// <param name="IsSupper">是否为超级管理员</param>
public record RoleCreateDto(
    string Name,
    string? Description = null,
    bool IsSupper = false
);

/// <summary>
/// 角色更新数据传输对象
/// </summary>
/// <param name="Name">角色名称</param>
/// <param name="Description">角色描述</param>
public record RoleUpdateDto(
    string Name,
    string? Description = null
); 